<?php
/**
 * Map24TileService class file
 * 
 * @author    {author}
 * @copyright {copyright}
 * @package   {package}
 */

/**
 * Coordinate class
 */
if ( !class_exists('Coordinate') )
{
require_once 'Coordinate.php5';
}
/**
 * services15.tiles.TileService.Tile class
 */
if ( !class_exists('services15tilesTileServiceTile') )
{
require_once 'services15.tiles.TileService.Tile.php5';
}
/**
 * services15.tiles.TileService.GetTilesResponse class
 */
if ( !class_exists('services15tilesTileServiceGetTilesResponse') )
{
require_once 'services15.tiles.TileService.GetTilesResponse.php5';
}
/**
 * RequestHeader.CustomerKeyValuePair class
 */
if ( !class_exists('RequestHeaderCustomerKeyValuePair') )
{
require_once 'RequestHeader.CustomerKeyValuePair.php5';
}
/**
 * RequestHeader class
 */
if ( !class_exists('RequestHeader') )
{
require_once 'RequestHeader.php5';
}
/**
 * services15.tiles.TileService.GetTilesRequest class
 */
if ( !class_exists('services15tilesTileServiceGetTilesRequest') )
{
require_once 'services15.tiles.TileService.GetTilesRequest.php5';
}
/**
 * services15.tiles.TileService.RegisterClientResponse class
 */
if ( !class_exists('services15tilesTileServiceRegisterClientResponse') )
{
require_once 'services15.tiles.TileService.RegisterClientResponse.php5';
}
/**
 * Property class
 */
if ( !class_exists('Property') )
{
require_once 'Property.php5';
}
/**
 * services15.tiles.TileService.RegisterClientRequest class
 */
if ( !class_exists('services15tilesTileServiceRegisterClientRequest') )
{
require_once 'services15.tiles.TileService.RegisterClientRequest.php5';
}
/**
 * services15.tiles.TileService.LogTileBitmapResponse class
 */
if ( !class_exists('services15tilesTileServiceLogTileBitmapResponse') )
{
require_once 'services15.tiles.TileService.LogTileBitmapResponse.php5';
}
/**
 * services15.tiles.TileService.LogTileBitmapRequest class
 */
if ( !class_exists('services15tilesTileServiceLogTileBitmapRequest') )
{
require_once 'services15.tiles.TileService.LogTileBitmapRequest.php5';
}
/**
 * services15.tiles.TileService.GetCopyrightResponse class
 */
if ( !class_exists('services15tilesTileServiceGetCopyrightResponse') )
{
require_once 'services15.tiles.TileService.GetCopyrightResponse.php5';
}
/**
 * ResponseHeader class
 */
if ( !class_exists('ResponseHeader') )
{
require_once 'ResponseHeader.php5';
}
/**
 * services15.tiles.TileService.CallProviderResponse class
 */
if ( !class_exists('services15tilesTileServiceCallProviderResponse') )
{
require_once 'services15.tiles.TileService.CallProviderResponse.php5';
}
/**
 * services15.tiles.TileService.CallProviderRequest class
 */
if ( !class_exists('services15tilesTileServiceCallProviderRequest') )
{
require_once 'services15.tiles.TileService.CallProviderRequest.php5';
}
/**
 * services15.tiles.TileService.GetImageProviderResponse class
 */
if ( !class_exists('services15tilesTileServiceGetImageProviderResponse') )
{
require_once 'services15.tiles.TileService.GetImageProviderResponse.php5';
}
/**
 * services15.tiles.TileService.GetImageProviderRequest class
 */
if ( !class_exists('services15tilesTileServiceGetImageProviderRequest') )
{
require_once 'services15.tiles.TileService.GetImageProviderRequest.php5';
}

/**
 * Map24TileService class
 * 
 *  
 * 
 * @author    {author}
 * @copyright {copyright}
 * @package   {package}
 */
class Map24TileService {

  private $client;

  private $wsdl = null;

  /**
   *
   * @param MapTP-System the request should be executed on $server
   * @param Map24Id $mid
   * @param Map24SessionId $sid
   */ 
  public function __construct($server=null, $mid=null, $sid=null, $interface='map24/webservices1.5') {
    if($server==null || $mid==null || $sid==null){
      echo "ERROR: Not enough or invalid arguments! Unable to initialise SoapClient.";
    }
    else {
      $this->wsdl = "http://".$server."/".$interface."?wsdl=Map24TileService";
      $this->client = new SoapClient($this->wsdl, array('location' => "http://".$server."/".$interface."?soap=Map24TileService&mid=".$mid."&sid=".$sid, 'trace' => 0, 'exceptions' => 1));
    }
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param services15.tiles.TileService.GetTilesRequest $GetTilesRequest
   * @return services15.tiles.TileService.GetTilesResponse
   */
  public function getTiles(RequestHeader $RequestHeader, services15.tiles.TileService.GetTilesRequest $GetTilesRequest) {
    return $this->client->getTiles($RequestHeader, $GetTilesRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param services15.tiles.TileService.RegisterClientRequest $RegisterClientRequest
   * @return services15.tiles.TileService.RegisterClientResponse
   */
  public function registerClient(RequestHeader $RequestHeader, services15.tiles.TileService.RegisterClientRequest $RegisterClientRequest) {
    return $this->client->registerClient($RequestHeader, $RegisterClientRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param services15.tiles.TileService.LogTileBitmapRequest $LogTileBitmapRequest
   * @return services15.tiles.TileService.LogTileBitmapResponse
   */
  public function logTileBitmap(RequestHeader $RequestHeader, services15.tiles.TileService.LogTileBitmapRequest $LogTileBitmapRequest) {
    return $this->client->logTileBitmap($RequestHeader, $LogTileBitmapRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param services15.tiles.TileService.GetTilesRequest $GetTilesRequest
   * @return services15.tiles.TileService.GetCopyrightResponse
   */
  public function getCopyrightInfo(RequestHeader $RequestHeader, services15.tiles.TileService.GetTilesRequest $GetTilesRequest) {
    return $this->client->getCopyrightInfo($RequestHeader, $GetTilesRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param services15.tiles.TileService.CallProviderRequest $CallProviderRequest
   * @return services15.tiles.TileService.CallProviderResponse
   */
  public function callProvider(RequestHeader $RequestHeader, services15.tiles.TileService.CallProviderRequest $CallProviderRequest) {
    return $this->client->callProvider($RequestHeader, $CallProviderRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param services15.tiles.TileService.GetImageProviderRequest $GetImageProviderRequest
   * @return services15.tiles.TileService.GetImageProviderResponse
   */
  public function getImageProvider(RequestHeader $RequestHeader, services15.tiles.TileService.GetImageProviderRequest $GetImageProviderRequest) {
    return $this->client->getImageProvider($RequestHeader, $GetImageProviderRequest);
  }

}

?>
